// 判题服务相关 DTO 接口
// Data Transfer Object - 用于数据传输的数据结构

// 语言枚举
export type LanguageType = 
  | 'JAVA'
  | 'CPLUSPLUS'
  | 'PYTHON'
  | 'JAVASCRIPT'
  | 'CSHARP'
  | 'GO'
  | 'RUST'
  | 'Ruby'
  | 'PHP'
  | 'C';

// 代码提交请求
export interface SubmitDTO {
  code: string; // 代码
  language: LanguageType; // 语言枚举
  pid: number; // 题目主键id
  userId: number; // 用户主键id
  trainId?: number; // 训练id
  submitId: number; // 提交id
  contestId?: number; // 比赛 id
  gid?: number; // 团队id，团队提交时携带
}

// 查询判题信息请求
export interface QueryJudgeInfo {
  page?: number; // 页码，默认1
  size?: number; // 分页大小，默认5
  sortBy?: string; // 排序字段
  isAsc?: boolean; // 排序方式，默认true
  pid?: number; // 题目id
  userId?: number; // 用户id
  trainId?: number; // 训练id，训练提交时携带
  submitId?: number; // 提交id，由调用题目提交的服务利用UUID自动生成
  contestId?: number; // 比赛id，比赛提交时携带
  gid?: number; // 团队id，团队提交时携带
}